package com.mall.service;

import com.mall.domain.dto.RechargeDTO;
import com.mall.domain.dto.UserDTO;
import com.mall.domain.dto.UserUpdatePasswordDTO;
import com.mall.domain.vo.UserLoginVO;

/**
 * UserService
 * @author 勾新杰
 * @version 1.0
 * @date 2024/11/21 23:44
 */
public interface UserService {

    /**
     * 用户注册
     * @param userDTO 用户传输对象
     */
    void register(UserDTO userDTO);

    /**
     * 用户登录
     * @param userDTO 用户传输对象
     * @return 登录成功返回用户信息
     */
    UserLoginVO login(UserDTO userDTO);

    /**
     * 修改密码
     * @param updatePasswordDTO 修改密码传输对象
     */
    void changePassword(UserUpdatePasswordDTO updatePasswordDTO);

    /**
     * 修改用户信息
     * @param userDTO 用户传输对象
     */
    void updateUserInfo(UserDTO userDTO);

    /**
     * 修改用户状态
     * @param id 用户id
     * @param status 状态
     */
    void updateStatus(Long id, Integer status);

    /**
     * 充值
     * @param rechargeDTO 充值传输对象
     */
    void induct(RechargeDTO rechargeDTO);

    /**
     * 扣款
     * @param rechargeDTO 充值传输对象
     */
    void deduct(RechargeDTO rechargeDTO);
}
